<?php

session_start();

/** Validate captcha */
if (!empty($_REQUEST['captcha'])) {
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
		header("Location: inscription.php?e=captcha");
		exit;
	}
}

include_once "metier/connexion.php";

redirigerSiConnecte();

include_once "metier/XSRF.php";






/******GESTION XSRF******/
//Si un token est passé en paramètre
if(isset($_POST["token"])) {
	//Si le token est valide
	if(!validerToken("INSCRIPTION_SITE", $_POST["token"])) {
		header("Location: inscription.php?e=token");
		exit;
	}
}
else {
	header("Location: inscription.php?e=token");
	exit;
}
/******FIN XSRF******/



//Si l'utilisateur a passé tous les champs en POST
if(isset($_POST["courriel"]) && isset($_POST["mdpchiffre"]) && isset($_POST["confirmationchiffre"])) {
	
	$courriel = strip_tags(htmlentities($_POST["courriel"])); //XSS
	
	//Vérifier que le courriel soit valide, s'il ne l'est pas, rediriger vers la page d'inscription
	if(!filter_var($courriel, FILTER_VALIDATE_EMAIL)) {
		header("Location: inscription.php?e=courriel");
		exit;
	}
	
	//Vérifier si le mot de passe et la confirmation du mot de passe sont identiques, s'ils ne le sont pas, rediriger vers la page d'inscription
	if($_POST["mdpchiffre"] != $_POST["confirmationchiffre"]) {
		header("Location: inscription.php?e=motdepasse");
		exit;
	}
	
	$mdpchiffre = htmlentities($_POST["mdpchiffre"]); //XSS
	
	//Ouverture de la base de données
	$bd = new PDO("mysql:host=localhost;dbname=viagra", "root", "root");
	
	//Création de la requête
	$requete = "INSERT INTO utilisateur (courriel, mdp) VALUES (".$bd->quote($courriel).", ".$bd->quote($mdpchiffre).")";
	
	//Si on peut démarrer une nouvelle transaction
	if($bd->beginTransaction()) {
	
		//Si on peut exécuter la requête de la requête
		if($bd->exec($requete) !== false) {
		
			//Si on peut commettre les changements apportés
			if($bd->commit()) {
			
				//Fermeture de la base de données
				$bd = null;
				
				//Redirection vers la page de connexion
				header("Location: connexion.php?s=inscription");
				exit;
				
			}
			
			//Si on a pas réussi à commettre les changements
			else {
				
				//Effectuer un rollBack
				$bd->rollBack();
				
				//Fermeture de la base de données
				$bd = null;
				
				//Redirection vers la page d'inscription
				header("Location: inscription.php?e=ecriturebd&1");
				exit;
				
			}
		}
		
		//Si on a pas réussi à exécuter la requête
		else {
			
			//Effectuer un rollBack (pour fermer la transaction en cours)
			$bd->rollBack();
			
			//Fermeture de la base de données
			$bd = null;
			
			//Redirection vers la page d'inscription
			header("Location: inscription.php?e=ecriturebd&2");
			exit;
			
		}
	}
	
	//Si on a pas réussi à démarrer la transaction
	else {
		
		//Fermeture de la base de données
		$bd = null;
		
		//Redirection vers la page d'inscription
		header("Location: inscription.php?e=ecriturebd&3");
		exit;
		
	}
	
}

else {
	header("Location: index.php?e=formulaire");
	exit;
}

?>